#! /bin/bash
set -e

# build web 包
function zpay::web::build(){
    echo ">>>>>>>>>>>>>>>>>>>> $FUNCNAME: 开始构建 web 产出包 <<<<<<<<<<<<<<<<<<<<"
    cd web && yarn install && yarn run build
    cd ..
}

# 编译 go 程序
function zpay::go::build(){
    echo ">>>>>>>>>>>>>>>>>>>> $FUNCNAME: 开始编译 go 产出包 <<<<<<<<<<<<<<<<<<<<"
    go build -o dist/zpay main.go
}

# 上传远程服务器并重启
function zpay::remote::deploy(){
    PASSWORD=$1
    echo ">>>>>>>>>>>>>>>>>>>> $FUNCNAME: 上传产出包 & 重启服务 <<<<<<<<<<<<<<<<<<<<"
    expect <<EOF
        set time 30
        spawn scp dist/zpay root@www.yooongchun.com:/home/www/zpay/zpay_new
        expect "password:"
        send "$PASSWORD\n"
    
        spawn ssh root@www.yooongchun.com "cd /home/www/zpay/ && supervisorctl stop zpay && mv zpay_new zpay && supervisorctl start zpay && supervisorctl status"
        expect "password:"
        send "$PASSWORD\n"
        expect eof

EOF
}

# 开始执行
zpay::web::build

zpay::go::build

if [ $# -eq 1 ];
then
    zpay::remote::deploy $1
fi
